package com.ruoyi.riskrule.mapper;

import com.ruoyi.bizsys.domain.AppUser;
import com.ruoyi.bizsys.domain.LoanIou;
import com.ruoyi.bizsys.domain.LoanOrder;
import com.ruoyi.bizsys.domain.RepaymentOrder;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @Author: Jamnsin
 * @Date: 2019/12/6 4:13 下午
 */
@Mapper
public interface LoanFieldMapper {

    public List<AppUser> getAppUserByDeviceInfo(@Param("userId") String userId);

    List<LoanIou> getLoanIouByCustNo(@Param("custNo") String custNo, @Param("updateTime") Date updateTime);

    /**
     * 根据状态获取客户订单数
     *
     * @param custNo
     * @param status
     * @param updateTime
     * @return
     */
    int selectContractsByStatus(@Param("custNo") String custNo, @Param("status") Integer[] status, @Param("updateTime") Date updateTime);

    Integer getCurrentOverdue(@Param("custNo") String custNo);

    //获取最近审批完成订单
    LoanOrder getApprovedRecentResult(@Param("custNo") String custNo);


    //当前提现申请距该客户最近一次提现申请的时间
    Integer getLastTimeInterval(@Param("custMerNo") String custMerNo);

    //当前提现申请距该客户最近的在贷账单日的时间
    Integer getLastTimeIntervalOfIou(@Param("custNo") String custNo);

    Integer getMaximumOverdue(@Param("custNo") String custNo);

    int getNewFingerprintCustOverdueNum(@Param("newFingerprint") String newFingerprint, @Param("table") String table,@Param("deviceType") String deviceType);

    int getFingerprintCustOverdueNum(@Param("fingerprint") String fingerprint);

    /**
     * 根据流水号获取借据
     *
     * @param loanNo
     * @return
     */
    LoanOrder getLoanOrderOne(@Param("loanNo") String loanNo);

    /**
     * 根据流水号获取借据
     * @param loanNo
     * @return
     */
    LoanIou getLoanIouOne(@Param("loanNo") String loanNo);

    BigDecimal withholdingTotal(@Param("custNo") String custNo);

    List<RepaymentOrder> withholdingSettlementQuantity(@Param("custNo") String custNo);

    Map<String, Integer> getLoanOrderNums(String custNo);
}
